#pragma once
#include <iostream>

#include "b_self.h"
#include "weak_ptr.h"

using namespace utility;
class A {
public:
    A() = default;
    ~A() { std::cout << "A is deleted" << std::endl; }
    WeakPtr<B> _b;
};